Immersive Sprint - Sprint

첫 시간은 환경 설정.

  1. nvm을 이용한 node-js 설치
  2. ubuntu 설치(window 환경인 경우에)

node.js 설치 환경세팅

https://github.com/creationix/nvm

cd ~ 홈 디렉토리

홈 디렉토리에 .bash_profile 로 저장해주기

js code

옵션 + 원하는 곳 클릭

커맨드 + d 입력

json의 경우는 무조건 ""로 작성해줄 것

scope review

  • scope는 중첩 가능

  • 기본적으로 function level scope

  • 전역 변수는 window 객체와 연결(node.js에서는 global)

  • var 변수 선언은 scope 상단으로 hoisting 됨

렉시컬 스코프 vs 다이나믹 스코프

  • 유효 범위(scope) : 코드를 작성할 때(lexical) 결정
  • this(execution context) : 함수가 실행될 때(run-time, dynamically) 결정됨
for (let i=0; i<5 i++) {
    console.log(i);
}
console.log(i) // 0,1,2,3,4, 참조 에러 i is not defined
for (var i=0; i<5 i++)
        console.log(i);
}
console.log(i) / ?

    //IIFE
    (function(){
    var a = '즉시 실행';
    console.log(a);
})();
	// let으로 커버 가능
{
   var a = '즉시 실행';
    console.log(a);
}

The Closure Pattern

바깥에서 접근가능하지 않은 변수가 클로저 변수

var makeMultiplier = function(multiplier){
    return function(n){
        return miltiplier
    }
}

메모이즈 패턴 솔루션 보고 다시 한 번 공부해볼 것.

CURRYING

makeTag = function(tagName) {
    return function(content) {
return ''
    }
}

->이걸 <p>'여기'</p>

// 경진님 코드
const makeTag = function(tagName){
    return function(content){
        return `<${tagName}> ${content} </${tagName}>`
    }
}

//함수가 떨어진다는 것은 실행이 가능한 애라는 것makeTag('p')만 실행했을 경우
makeTag('p')('내용')
"<p>내용</p>"
  • 커링을 리커시브하게 만들어보기(도전과제)
function sum3(x, y, z)

sum(3)(5)(7)(5)(3) -> 풀어보기 무한정

내일은 this 관련 설명

페어 프로그래밍

나눠서 할 수 있어야 한다. 내가 잘하면 어떻게 이 사람을 쉽게 이해시킬 수 있을까를 고민해야 한다. 고수는 쉬운 언어로 말한다. 쉬운 API. 내가 못하면 빨리 따라가야 한다. 어떻게 이 사람의 박자에 맞춰갈 수 있을까. 절대로 안 좋은 것은, 다른 박자로 가는 것.

resolution. 혹시 이번 페어가 망하면, 깔끔하게 잊고 다음에 집중하면 됨.

싸우는 것은 좋다. 안 싸우는 것이 더 이상하다. 다만, 감정적으로 가져가진 말 것. 불쾌한 행동이 있다고 느꼈다면, 바로 이야기를 꺼내고, 그 자리에서 바로 바로 말할 것. 감정을 오래 가져가지 말 것.


lastrites2018
Written bylastrites2018
I explain with words and code.

👉삽질의 역사는 노션 WIKI에서